from lxml import etree

import requests
from django.http import HttpResponse
from django.shortcuts import render


def index(request):
    return HttpResponse("今天天气还行，雷暴预警")


def user_list(request):
    #1. 有限区项目的根目录下的templates中寻找(提前配置好的) 【不配置则无效】
    #  配置位置：在settings.py中  "DIRS": [BASE_DIR / 'templates']
    # 2. 根据APP注册顺序，在每个app下的templates目录中寻找
    return render(request, 'user_list.html')

def user_add(request):
    return render(request, 'user_add.html')

def tpl(request):
    name = '韩耀祖' #普通字段
    student = ['韩祖耀','李欣桐','谭新宇','刘千琪','崔龙腾'] # 列表

    user_info = { # 字典
        'name':'谭新宇',
        'age':20,
        'gender':'女',
        'salary':18000,
        'role':'CEO'
    }

    # 列表嵌套字典
    data_list = [
        {'name':'韩耀祖','age':22,'address':'河北邯郸'},
        {'name': '李欣桐', 'age': 21, 'address': '吉林长春'},
        {'name': '刘千琪', 'age': 23, 'address': '吉林长春'},
        {'name': '聂茹凤', 'age': 22, 'address': '吉林松原'},
    ]

    return render(request,'tpl.html',{
        'name':name,
        'stu':student,
        'u':user_info,
        'dl':data_list,
    })

def news(request):
    # 1. 在这个位置定义一些新闻(字典或者列表) 这些新闻是通过数据库获取到的，获取是从别的网站爬取到的
    headers= {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0'
    }
    url = 'https://news.baidu.com/'

    response = requests.get(url,headers=headers) # 发送请求获取相应
    response.encoding = 'utf-8' # 将相应结果设置成utf8编码格式

    html = response.text

    # 解析HTML
    parse = etree.HTML(html)
    # 提取热点新闻标题
    hot_titles = parse.xpath('//div[@class="hotnews"]//a/text()')
    print(hot_titles)


    # 提取焦点新闻
    view_titles = parse.xpath('//ul[@class="ulist focuslistnews"]/li/a/text()')
    print(view_titles)

    context = {
        'hot_titles':hot_titles,
        'view_titles':view_titles
    }

    # 2. 将获取到的新闻,返回给给news.html页面
    return render(request,'news.html',context)






